package com.example.businessmanage.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.example.businessmanage.domain.po.FosterIntentPO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 代养意向Mapper（MyBatis-Plus）
 */
public interface FosterIntentMapper extends BaseMapper<FosterIntentPO> {

    /**
     * 分页查询宠物的待选择代养人列表（主人查看）
     * @param page 分页参数
     * @param petId 宠物ID
     * @return 分页代养意向列表（含代养人ID）
     */
    IPage<FosterIntentPO> selectFosterByPetId(Page<FosterIntentPO> page, @Param("petId") Long petId);

    /**
     * 分页查询代养人的待选择代养宠物列表（代养人查看）
     * @param page 分页参数
     * @param fosterUserId 代养人ID
     * @return 分页代养意向列表（含宠物ID）
     */
    IPage<FosterIntentPO> selectPetByFosterId(Page<FosterIntentPO> page, @Param("fosterUserId") Long fosterUserId);

    /**
     * 根据宠物ID查询所有待选择代养人ID（用于更新pet_info的待选择代养人集合）
     * @param petId 宠物ID
     * @return 代养人ID列表
     */
    List<Long> selectFosterIdsByPetId(@Param("petId") Long petId);

    /**
     * 根据代养人ID和宠物ID查询意向（判断是否已发送过意向）
     * @param fosterUserId 代养人ID
     * @param petId 宠物ID
     * @return 代养意向PO（null-未发送）
     */
    FosterIntentPO selectByFosterAndPet(@Param("fosterUserId") Long fosterUserId, @Param("petId") Long petId);
}
